/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package dao;

import bentity.bePerfilxPrivilegio;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

/**
 *
 * @author luis
 */
public class daoPerfilxPrivilegio {
    protected Connection conexion;

    public int insertarPerfilxPrivilegio(int id_Perfil, int id_Privilegio) throws SQLException{
        conexion = daoHelper.dameConexion();
        String sql = "INSERT INTO PERFIL_X_PRIVILEGIO(id_Perfil, id_Privilegio) VALUES (?, ?)";
        PreparedStatement ps = conexion.prepareStatement(sql);
        ps.setInt(1, id_Perfil);
        ps.setInt(2, id_Privilegio);
        ps.executeUpdate();
        ps.close();
        conexion.close();
        return daoHelper.TRANSACCION_EXITOSA;
    }

    public int eliminarPerfilxPrivilegio(int id_Perfil, int id_Privilegio) throws SQLException{
        conexion = daoHelper.dameConexion();
        String sql = "DELETE FROM PERFIL_X_PRIVILEGIO WHERE id_Privilegio=? AND id_Perfil=?";
        PreparedStatement ps = conexion.prepareStatement(sql);
        ps.setInt(1, id_Perfil);
        ps.setInt(2, id_Privilegio);
        ps.executeUpdate();
        ps.close();
        conexion.close();
        return daoHelper.TRANSACCION_EXITOSA;
    }

    public int eliminarPerfilxPrivilegio(int id_Perfil) throws SQLException{
        conexion = daoHelper.dameConexion();
        String sql = "DELETE FROM PERFIL_X_PRIVILEGIO WHERE id_Perfil=?";
        PreparedStatement ps = conexion.prepareStatement(sql);
        ps.setInt(1, id_Perfil);
        ps.executeUpdate();
        ps.close();
        conexion.close();
        return daoHelper.TRANSACCION_EXITOSA;
    }

    public ArrayList<bePerfilxPrivilegio> queryById(int id_Perfil){
        conexion = daoHelper.dameConexion();
        String sql = "SELECT * FROM PERFIL_X_PRIVILEGIO WHERE id_perfil=?";

        ArrayList<bePerfilxPrivilegio> listaPerfilxPrivilegio = new ArrayList<bePerfilxPrivilegio>();
        bePerfilxPrivilegio perfilxPrivilegio = new bePerfilxPrivilegio();

        try{
            PreparedStatement ps = conexion.prepareStatement(sql);
            ps.setInt(1, id_Perfil);
            ResultSet rs = ps.executeQuery();
            while (rs.next()){
                perfilxPrivilegio = new bePerfilxPrivilegio(rs.getInt(1),rs.getInt(2));
                listaPerfilxPrivilegio.add(perfilxPrivilegio);
            }
            rs.close();
            ps.close();
            conexion.close();
        }
        catch (Exception e) {
            System.out.print(e.getMessage());
            return null;
        }

        return listaPerfilxPrivilegio;
    }

    public boolean tienePrivilegio(int idPerfil, int idPrivilegio){
        conexion = daoHelper.dameConexion();
        String sql = "SELECT * FROM PERFIL_X_PRIVILEGIO WHERE id_Perfil=? AND id_Privilegio=?";

        try{
            PreparedStatement ps = conexion.prepareStatement(sql);
            ps.setInt(1, idPerfil);
            ps.setInt(2, idPrivilegio);

            ResultSet rs = ps.executeQuery();
            while (rs.next()){
                return true;
            }
            rs.close();
            ps.close();
            conexion.close();
        }
        catch (Exception e) {
            System.out.print(e.getMessage());
            return false;
        }

        return false;
    }

}
